AP计算机科学A复习:Unit 2 – Using Objects 面对对象编程

AP计算机科学A复习:Unit 2 – Using Objects 面对对象编程 Java是「面向对象编程」的语言。意思就是通过编程来实现对「对象」进行操作,这里所说的对象是「Objects」。我们会先了解什么是「Objects」,然后学习如何与「Objects」有关的编程语句。比如,如何新建一个Object并对它进行操作。 U2.1 Objects: Instances of Classes 所有的Objects, Methods等等元素必须依附于Class。在之前的程序写作中,这个特征具体的表现为我们要把Method写在某个Class的范围内。我们通过一个具象化的例子来理解这堆名词之间的关系。下图展示了一个简单的学生名单,每个学生拥有各种各样的信息,例如图中的学号、姓名、年龄、以及性别。每一项信息被称为「field」,蓝色高亮部分就是一个field的例子。一个拥有这些信息的学生就被称作一个「Object」,图中淡黄色高亮部分的学号为0003的这名学生就是一个例子。「Class」作为顶层的容器,把以上提到的所有元素容纳起来,是汇集具有相同特征的数据和功能的地方(图中粉色的高亮部分)。 Objects是Class的实例。可以把Class看作是Objects的蓝图或者模版。因此,我们创建一个Object的手段就是把Class实例化「Instantiation」,这样相当于从照着模版把下面的表格新增一行,然后我们就可以为一个新的「Object」填写他的信息。我们会在U2.2介绍如何在程序写作中实现「新建Object」。 而「Method」则是对Object做出的动作,可以想象为图中深黄色高亮部分的三个蓝色按钮。比如,我们可以输出学生名单中的所有姓名,加上「交作业啦」的提示,这样就形成了一条提醒学生交作业的文本通知。当然这只是一种简单的例子,功能更完善的Method写作语法会在U2.3-U2.5中逐步介绍。 U2.2 Creating and Storing Objects (Instantiation) 「Constructor」是一种特别的Method,作用是给「Object」的各项信息赋初始值,它会在「Instantiation」语句运行时自动被调用。当我们调用一个Method时,程序会暂时脱离原来的顺序结构转而运行被调用的method的内容。等到被调用的method运行完后,再返回到原来的顺序结构中继续运行。比如下图中第四行的时候调用了一个method,因此程序会在第四行时跳转到下方void method 的部分。等到void method里面的程序语句被执行完后,才继续顺序执行上方第五行的语句。Constructor同理。 在Java程序写作中,如果说「Class」里的fields组成了表格的表头,「instantiation」的过程就是依据表头的格式把表格新增一行,而「constructor」的用处是把新增的这一行里面填上数据。我们分三步来看看具体写法。 【第一步:规划field】 在开始「Instantiation」之前,我们要首先确定每一个Object要拥有什么样的信息。比如上面的例子就是一个学生作为Object拥有学号、姓名、年龄、性别四个fields。我们分别使用四个直接依附于Class的变量来存储它们。其中学号(stuID)和年龄(age)各使用一个整数「int」类型的变量存储,而学生姓名(stuName)和性别(gender)则各使用一个「String」类型的字符串变量存储。 这样,我们就准备好了待会儿需要用到的「field」。但是在上面的这段程序语句中,所有的变量都没有被赋值。相当于表格的表头准备好了,但是还没有添加内容。那么我们就需要用到「constructor」来把内容填入这个表格里。进入第二步。 【第二步:创建constructor】 创建constructor的语句包括三部分:「constructor name」(粉色高亮),「parameter list」(黄色高亮),以及constructor的内容部分(绿色高亮的大括号之间的部分)。其中,「constructor name」必须和它所在的Class的名称保持一致,例如,存在于「Main」 Class里面的constructor就叫「Main」。Parameter list里面可以定义变量,如果必要,这些变量在调用constructor的同时可以存储传进来的待使用的数据,看下面的例子就很好理解。这些被传送到constructor的数据被称为Parameters。如果不需要传送数据,把parameter list留空即可。我们来看具体写法: 因为这个constructor存在于Main class里面,所以constructor name写作Main,与class name 保持一致。而在parameter list 中列有两个parameters,分别是字符串「String f」以及整数变量「int i」。这两个变量在constructor的范围内有效,所以它们只能在绿色高亮的大括号之间也就是这个constructor的范围内被访问到。 注意,我们截止目前只是明确了在调用constructor的时候要接收一个字符串和一个整数数据,还没有指明这两个数据的来源就是main method之中的a 和 b。进入第三步,写上指明参数的数据来源的语句。 【第三步:Instantiation】 作为一种特别的method,要启动「constructor」里面的语句的不需要写单独的程序语句来进行调用:一旦某个Class被「instantiate」,「constructor」就会自动被调用。现在,使用 「new」关键词来进行「Instantiation」,这样写: 这就是「Instantiation」的语句,当他被执行时,就创建了一个新的Object,随即调用constructor对object进行初始化。这句话使用了「new」关键词,空格后接着写「constructor … Continue reading AP计算机科学A复习:Unit 2 – Using Objects 面对对象编程